<?php

class WucMarco extends TTemplateControl {
//<editor-fold defaultstate="collapsed" desc="Variables de Configuracion">
  //variables privadas
  const NOMBRE_WEB_USER_CONTROL = "wucMarco";
  //Modo Expandir
  const MODO_CONTRAIDO = "Contraido";
  const MODO_EXPANDIDO = "Expandido";

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Propiedades">
  public function getTitulo() { return $this->getViewState("Titulo"); }
  public function setTitulo($value) { $this->setViewState("Titulo", $value); }

  public function getTipo() { return $this->getViewState("Tipo"); }
  public function setTipo($value) { $this->setViewState("Tipo", $value); }

  public function getPosicion() { return $this->getViewState("Posicion"); }
  public function setPosicion($value) { $this->setViewState("Posicion", $value); }

  public function getCssClassTitulo() { return $this->getViewState("CssClassTitulo"); }
  public function setCssClassTitulo($value) { $this->setViewState("CssClassTitulo", $value); }

  public function getNombreContenedorContraer() { return $this->getViewState("NombreContenedorContraer"); }
  public function setNombreContenedorContraer($value) { $this->setViewState("NombreContenedorContraer", $value); }

  public function getMostrarExpandirContraer() { return $this->getViewState("MostrarExpandirContraer"); }
  public function setMostrarExpandirContraer($value) { $this->setViewState("MostrarExpandirContraer", $value); }

  public function getModoExpandirContraer() { return $this->getViewState("ModoExpandirContraer"); }
  public function setModoExpandirContraer($value) { $this->setViewState("ModoExpandirContraer", $value); }

//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Metodos Privados">
  /**
   * obtiene prefijo del control
   */
  private function obtenerPrefijoControl(){
    $clientId = $this->ltlMarco->ClientID;
    $id = $this->ltlMarco->ID;
    $prefijoControl = str_replace($id, "", $clientId);
    return $prefijoControl;
  }

  /**
   * obtiene nombre del holder para la imagen de expandir contraer
   * @return <type> 
   */
  private function obtenerNombreImagenExpandirContraer(){
    $prefijoControl = $this->obtenerPrefijoControl();
    return $prefijoControl."holderImagenExpandirContraer";
  }

  /**
   * registra los javascript asociados
   * @author VSR, 16/05/2012
   */
  protected function registrarJavaScript() {
    $prefijoControl = $this->obtenerPrefijoControl();
    $holderImagenExpandirContraer = $this->obtenerNombreImagenExpandirContraer();
    $themeBaseUrl = $this->Page->Theme->BaseUrl;
    $holderContenedor = $this->NombreContenedorContraer;
    $dataScriptExpandirContraer = "";

    //registra script para inicializar la expansion o contraccion del bloque al cargar la pagina
    if ($this->MostrarExpandirContraer == "true" && strtolower($this->Posicion) == strtolower(Utilidades::MARCO_POSICION_TOP)) {
      if ($this->ModoExpandirContraer == self::MODO_EXPANDIDO) {
        $dataScriptExpandirContraer .= "expandirContraer('".$holderImagenExpandirContraer."','".$holderContenedor."','expandir','','','".$themeBaseUrl."');";
      } else {
        $dataScriptExpandirContraer .= "expandirContraer('".$holderImagenExpandirContraer."','".$holderContenedor."','contraer','','','".$themeBaseUrl."');";
      }
      $this->Page->ClientScript->registerEndScript($prefijoControl."scriptExpandirContraer", $dataScriptExpandirContraer);
    }
  }

  /**
   * inicializa valores de los controles
   * @author VSR, 01/01/2011
   */
  protected function inicializaControles() {
    $posicion = Utilidades::isNull($this->Posicion,"");
    $titulo = Utilidades::isNull($this->Titulo,"");
    $tipo = Utilidades::isNull($this->Tipo,"");
    $holderImagenExpandirContraer = $this->obtenerNombreImagenExpandirContraer();
    $classTitulo = Utilidades::isNull($this->CssClassTitulo,"");

    //formatea valores
    $tipo = (Utilidades::isNullOrEmpty($tipo)) ? Utilidades::MARCO_TIPO_NORMAL : $tipo;
    $classTitulo = (Utilidades::isNullOrEmpty($classTitulo)) ? Utilidades::MARCO_CSS_TITULO : $classTitulo;

    if(strtolower($posicion) == strtolower(Utilidades::MARCO_POSICION_BOTTOM)){
      $titulo = "";
      $holderImagenExpandirContraer = "";
      $classTitulo = "";
    }

    $this->ltlMarco->Text = Utilidades::obtenerMarco($posicion, $titulo, $tipo, $holderImagenExpandirContraer, $classTitulo);
  }
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Eventos Controles">
  public function  onLoad($param) {
    parent::onLoad($param);
    //registra los bloques javascript respectivos
    $this->registrarJavaScript();
    $this->inicializaControles();
  }
//</editor-fold>
  
}
?>
